package com.asen.business.commons.service;

import com.asen.business.commons.domain.CoreBill;

/**
 * 核心单据service接口
 *
 * @author Gary
 * @version 1.0
 * @date 2018-12-09
 */
public interface CoreBillService<T extends CoreBill> extends BillService<T> {

    /**
     * 清除分录数据
     * @param model
     */
    void clearEntry(T model);

    /**
     * 清除数据
     * @param model
     */
    void clearData(T model);

    /**
     * 保存
     *
     * @param model
     * @throws Exception
     */
    void save(T model) throws Exception;

    /**
     * 提交
     *
     * @param model
     * @throws Exception
     */
    void submit(T model) throws Exception;

    /**
     * 审核
     *
     * @param id
     * @throws Exception
     */
    void audit(Long id) throws Exception;

    /**
     * 反审核
     *
     * @param id
     * @throws Exception
     */
    void unAudit(Long id) throws Exception;
}
